#ifndef _NEPTUNER_SCUBSERVER_H
#define _NEPTUNER_SCUBSERVER_H

#include "Scope.h"

//Scubserver = Scuba Observer ;-)
//Abstract Base Class to be used as interface
class Scubserver
{
public:
	Scope*		m_pxCurrentScope;
	Location*	m_pxLocation;

	virtual void setFocus(Scope* inScope, Location* inLocation)
	{
		m_pxCurrentScope = inScope;
		m_pxLocation = inLocation;
	}

    virtual void onNewToken(Scope& inScope, Token& inToken) = 0;
	//Called before ScopeEntry or ScopeExit
    virtual void onScopeEntry(Scope& inNewScope, Scope& inOldScope) = 0;
	//Called *after* new scope entered
    virtual void onScopeExit(Scope& inNewScope, Scope& inOldScope) = 0;
	//Called *after* old scope exited

};

#endif
